package spring.mvc.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

/**
 * description:
 * 03SpringMVC初始化配置类
 *
 * 1. 通过实现SpringMVC的固定接口，会自动完成IOC容器创建，AbstractAnnotationConfigDispatcherServletInitializer 顶层父接口`WebApplicationInitializer`。
 * 2. 用于替换 web.xml，实现完全注解，Springmvc框架会自动检查当前类的实现类，自动加载方法中返回的配置类
 * 3. 方法 getServletConfigClasses() 中返回配置文件
 * 4. 方法 getServletMappings() 中返回SpringMVC的Servlet的访问地址或拦截路径，"/"表示拦截所有请求
 */

public class SpringMvcInit extends AbstractAnnotationConfigDispatcherServletInitializer {

    // service mapper层的ioc容器的配置
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    // 设置我们项目对应的配置 springmvc controller
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{MvcConfig.class};
    }

    // 配置springmvc内部自带servlet 的访问地址
    @Override
    protected String[] getServletMappings() {
        return new String[]{ "/"};
    }
}
